Control Template এবং Custom Control Styling

Microsoft Technologies - এমভিভিএম (MVVM) Styling এবং Theming Techniques in MVVM |
213
213

Control Templates এবং Custom Controls Styling হল WPF, Xamarin.Forms, এবং অন্যান্য XAML ভিত্তিক UI প্রযুক্তিতে ব্যবহৃত অত্যন্ত শক্তিশালী কৌশল, যা UI উপাদানগুলির চেহারা ও আচরণকে সম্পূর্ণভাবে কাস্টমাইজ করতে সাহায্য করে। এটি MVVM প্যাটার্নে View এর দৃশ্যমানতা এবং ইউজার ইন্টারফেসের স্টাইলিং উন্নত করার জন্য ব্যবহৃত হয়।

Control Template

Control Template একটি কনটেইনার বা টেমপ্লেট যা একটি কন্ট্রোলের (যেমন Button, TextBox, CheckBox, ইত্যাদি) চেহারা এবং আচরণ কাস্টমাইজ করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি কন্ট্রোলের ডিফল্ট UI উপাদানগুলিকে সম্পূর্ণভাবে পরিবর্তন করতে পারেন, তবে কন্ট্রোলের কার্যকারিতা অপরিবর্তিত থাকে।

Control Template কিভাবে কাজ করে:

  • Control Template একটি বিশেষ XAML উপাদান যা কন্ট্রোলের UI কাস্টমাইজ করতে ব্যবহৃত হয়।
  • এটি UI-তে একটি কন্ট্রোলের চেহারা নির্ধারণ করে, যেমন বাটন, টেক্সটবক্স, প্রগ্রেসবার ইত্যাদি।
  • আপনি কন্ট্রোলের রিডিফাইন করা UI উপাদানগুলো এবং সেগুলোর স্টাইল বা লেআউট নির্ধারণ করতে পারেন।

Control Template তৈরি করা

ধরা যাক, আপনি একটি Button কন্ট্রোলের জন্য একটি কাস্টম টেমপ্লেট তৈরি করতে চান, যা একটি গ্র্যাডিয়েন্ট ব্যাকগ্রাউন্ড, একটি অ্যানিমেটেড ট্রানজিশন এবং একটি কাস্টম বর্ডার থাকবে।

<Button Content="Click Me">
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <Border Background="LightBlue" BorderBrush="DarkBlue" BorderThickness="2" CornerRadius="5">
                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
            </Border>
        </ControlTemplate>
    </Button.Template>
</Button>

ব্যাখ্যা:

  • ControlTemplate: এটি একটি কন্ট্রোলের জন্য কাস্টম UI ডিফাইন করতে ব্যবহৃত হয়। এখানে TargetType="Button" দিয়ে নির্দেশ করা হয়েছে যে এটি একটি বাটনের জন্য টেমপ্লেট।
  • ContentPresenter: এটি কন্ট্রোলের কন্টেন্ট (যেমন বাটনের টেক্সট) প্রদর্শন করার জন্য ব্যবহৃত হয়।
  • Border: কন্ট্রোলের আশেপাশে একটি কাস্টম বর্ডার ডিজাইন করতে ব্যবহৃত হয়।

এভাবে, আপনি ControlTemplate ব্যবহার করে কন্ট্রোলের চেহারা সম্পূর্ণ কাস্টমাইজ করতে পারেন, তবে এর কার্যকারিতা অপরিবর্তিত থাকে।


Custom Control Styling

Custom Control হল একটি কাস্টম কন্ট্রোল যা সাধারণত UserControl-এর তুলনায় আরও শক্তিশালী এবং নমনীয়। এটি একটি সম্পূর্ণ নতুন কন্ট্রোল তৈরি করতে সাহায্য করে, যা আপনার প্রোজেক্টের বিশেষ প্রয়োজন অনুসারে তৈরি করা হয়। Custom Controls সাধারণত Control ক্লাস থেকে ইনহেরিট করা হয় এবং এতে ControlTemplate এবং অন্যান্য স্টাইলিং সমন্বিত করা যায়।

Custom Control তৈরি করা

  1. Custom Control ক্লাস তৈরি করা:

    • প্রথমে, আপনাকে একটি কাস্টম কন্ট্রোল ক্লাস তৈরি করতে হবে যা Control ক্লাস থেকে ইনহেরিট করবে।
    using System.Windows.Controls;
    
    public class MyCustomButton : Control
    {
        static MyCustomButton()
        {
            // Default Style Key সেট করা
            DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomButton), new FrameworkPropertyMetadata(typeof(MyCustomButton)));
        }
    }
    

    এখানে, MyCustomButton একটি কাস্টম কন্ট্রোল যা Control ক্লাস থেকে ইনহেরিট করেছে এবং DefaultStyleKey সেট করেছে, যাতে এটি XAML-এ একটি কাস্টম স্টাইল এবং টেমপ্লেট ব্যবহার করতে পারে।

  2. XAML-এ Custom Control Styling:

    • এরপর, আপনার কাস্টম কন্ট্রোলের জন্য একটি ControlTemplate এবং Style তৈরি করতে হবে। এটি সাধারণত Themes ফোল্ডারে রাখা হয়।
    <Style TargetType="local:MyCustomButton">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:MyCustomButton">
                    <Button Background="Green" Foreground="White" Content="My Custom Button" BorderBrush="Black" BorderThickness="2"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

    এখানে, local:MyCustomButton কাস্টম কন্ট্রোলের জন্য একটি Style এবং ControlTemplate তৈরি করা হয়েছে। এটি একটি Button এর মতো স্টাইলিং প্রদান করছে, তবে এটি আপনার কাস্টম কন্ট্রোলের মধ্যে অন্তর্ভুক্ত।


Control Template এবং Custom Control Styling এর সুবিধা

  • Customization: ControlTemplate এবং Custom Controls ব্যবহার করে আপনি যেকোনো কন্ট্রোলের UI সম্পূর্ণ কাস্টমাইজ করতে পারেন, এমনকি উইন্ডো সিস্টেমের ডিফল্ট UI উপাদানগুলি না ব্যবহার করেও।
  • Separation of Concerns: UI এবং লজিকের মধ্যে স্পষ্ট পার্থক্য বজায় রাখা সম্ভব হয়, কারণ ViewModelView এর মধ্যে নির্ভরতা কমে যায়।
  • Reusable Components: কাস্টম কন্ট্রোল তৈরির মাধ্যমে আপনি পুনঃব্যবহারযোগ্য UI উপাদান তৈরি করতে পারেন যা বিভিন্ন প্রকল্পে ব্যবহার করা যাবে।

Conclusion

Control Template এবং Custom Controls Styling আপনাকে MVVM অ্যাপ্লিকেশনে View কাস্টমাইজ করতে একটি শক্তিশালী হাতিয়ার প্রদান করে। Control Template এর মাধ্যমে আপনি স্টাইলিং এবং লেআউট কাস্টমাইজ করতে পারেন, যখন Custom Control আপনার অ্যাপ্লিকেশনকে আরও কার্যকরী ও প্রয়োজনীয় কন্ট্রোল তৈরি করতে সাহায্য করে। এভাবে আপনি UI এবং কার্যকারিতা উভয়ই কাস্টমাইজ করে একটি উন্নত এবং নমনীয় অ্যাপ্লিকেশন তৈরি করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion